﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ejercicio4;

/*
 * Clase que representa el tiempo de una pista o de un cd.
 * 
 * Autor : Bettiol, Marmol, Mattana, Rodeguiero.
 * 
 */

namespace Ejercicio4
{
    public class Tiempo
    {
        private int minutos;
        private int segundos;

        public Tiempo()
        {
            minutos = 0;
            segundos = 0;
        }

        public Tiempo(int min, int seg)
        {
            minutos = min;
            if (seg > 59)
            {
                minutos += segundos / 60;
                segundos = segundos % 60;
            }
            else
            {
                segundos = seg;
            }
        }

        public int getSegundos()
        {
            return segundos;
        }

        public int getMinutos()
        {
            return minutos;
        }

        public void sumaTiempos(Tiempo tiempo2)
        {
            // <pex>
            if (tiempo2 == (Tiempo)null)
                throw new ArgumentNullException("tiempo2");
            // </pex>
            minutos += tiempo2.getMinutos();
            if (segundos + tiempo2.getSegundos() > 59)
            {
                minutos++;
                segundos = (segundos + tiempo2.getSegundos()) - 60;
            }
            else
            {
                segundos += tiempo2.getSegundos();
            }
        }

        public void restarTiempos(Tiempo tiempo2)
        {
            // <pex>
            if (tiempo2 == (Tiempo)null)
                throw new ArgumentNullException("tiempo2");
            // </pex>
            minutos -= tiempo2.getMinutos();
            segundos -= tiempo2.getSegundos();
            if (segundos < 0)
            {
                segundos *= (-1);
                minutos--;
            }
        }

        public Boolean Equals(Tiempo tiempo2)
        {
            // <pex>
            if (tiempo2 == (Tiempo)null)
                throw new ArgumentNullException("tiempo2");
            // </pex>
            return (minutos == tiempo2.getMinutos() && segundos == tiempo2.getSegundos());
        }

        public Boolean repOk()
        {
            if (minutos < 0 || segundos < 0)
                return false;
            if (segundos > 59)
                return false;
            return true;
        }

    }
}
